The Interface Proxy File

The interface proxy file (name_P.C) is a C file that contains routines equivalent to those in the client stub, server stub, and client and server files of an RPC interface. This file contains implementations of CProxyInterface and CStubInterface classes that are derived from the CProxy and CStub classes of the base interface. For example, an interface named ISomeInterface derived from the IUnknown interface is implemented in the CProxyISomeInterface and CStubISomeInterface classes derived from the CProxyIUnknown and CStubIUnknown classes.

The interface proxy file includes the following sections:

    The implementation of a CProxyInterface class.

The virtual member functions of this class provide a client application s surrogate entry points for each of the interface functions. These member functions marshal the input arguments into a transmittable form, transmit the marshalled arguments along with information that identifies the interface and the operation, and then unmarshal the return value and any output arguments when the transmitted operation returns.

    The implementation of a CStubInterface class.

The virtual member functions of this class provide an object server s surrogate entry points for each of the interface functions. These member functions unmarshal the input arguments, invoke the server s implementation of the interface function, and then marshal and transmit the return value and any output arguments. A CStubInterface class also includes a member function that is invoked by the RPC run-time library when a client application calls one of the interface functions. This routine calls the surrogate routine specified by the RPC message.

    Marshalling and unmarshalling support routines for complex data types.

 

Use the /proxy18ARA8P MIDL compiler switch to override the default name of the interface proxy file. The /envJ2VQ92 and /out1YECZCP switches affect this file.